// // 1. 将两个递增的有序链表合并为一个递增的有序链表。
// // 要求结果链表仍使用原来两个链表的存储空间，不另外占用其他的存储空间。
// // 表中不允许有重复的数据。
// #include <stdio.h>
// #include <stdlib.h>
// #include <errno.h>
// //节点结构
// typedef struct LinkNode {
//     int data;
//     struct LinkNode* next;
// }LinkNode;
// //链表结构
// typedef struct LinkList {
//     LinkNode* head;
// }LinkList;
// //链表初始化
// LinkList* LinkInit() {
//     LinkList* list=(LinkList*)malloc(sizeof(LinkList));
//     list->head=(LinkNode*)malloc(sizeof(LinkNode));
//     list->head->next=NULL;
//     return list;
// }
// // 插入节点到链表尾部
// void LinkInsert(LinkList* list,int data) {
//     LinkNode* newNode=(LinkNode*)malloc(sizeof(LinkNode));
//     if(newNode==NULL) {
//         perror("malloc");
//     }
//     newNode->data=data;
//     newNode->next=NULL;
//     LinkNode* current=list->head;
//     while (current->next!=NULL) {
//         current=current->next;
//     }
//     current->next=newNode;
// }
// //打印链表
// void printLinkList(LinkList* list) {
//     LinkNode* current=list->head->next;
//     while(current!=NULL) {
//         printf("%d ",current->data);
//         current=current->next;
//     }
//     printf("\n");
// }
// // 合并两个递增的有序链表
// LinkList* LinkMerge(LinkList* L1,LinkList* L2) {
//     LinkList*L3=LinkInit();
//     L3->head->next=NULL;
//     LinkNode* l1=L1->head->next;
//     LinkNode* l2=L2->head->next;
//     LinkNode* l3=L3->head;
//     while(l1!=NULL&&l2!=NULL) {
//         if(l1->data<l2->data) {
//             l3->next=l1;
//             l1=l1->next;
//         }else if(l1->data>l2->data) {
//             l3->next=l2;
//             l2=l2->next;
//         }else {
//             l3->next=l1;
//             l1=l1->next;
//             l2=l2->next;
//         }
//         l3=l3->next;
//     }
//     if(l1!=NULL) {
//         l3->next=l1;
//     }else if(l2!=NULL) {
//         l3->next=l2;
//     }
//     free(L1->head);
//     free(L2->head);
//     free(L1);
//     free(L2);
//     return L3;
// }
// int main() {
//     LinkList* L1=LinkInit();
//     LinkList* L2=LinkInit();
//     LinkInsert(L1,1);
//     LinkInsert(L1,3);
//     LinkInsert(L1,5);
//     LinkInsert(L1,7);
//     LinkInsert(L1,9);
//     LinkInsert(L2,2);
//     LinkInsert(L2,4);
//     LinkInsert(L2,6);
//     LinkInsert(L2,8);
//     LinkInsert(L2,10);
//     printf("L1:");
//     printLinkList(L1);
//     printf("\n");
//     printf("L2:");
//     printLinkList(L2);
//     printf("\n");
//     LinkList* L3=LinkInit();
//     L3=LinkMerge(L1,L2);
//     printf("L3:");
//     printLinkList(L3);
//     free(L3);
//     return 0;
// }